#pragma once
#ifndef __Timer_header_included__
#define __Timer_header_included__

#include <Engine/ITimer.h>

namespace fastbird
{
	class Timer : public ITimer
	{
	public:
		Timer();

	protected:		
		~Timer();

	public:
		virtual void Tick();
		virtual TIME_PRECISION GetTime();
		virtual TIME_PRECISION GetDeltaTime();		
		virtual void Reset();
		virtual __int64 GetTickCount();
		inline virtual __int64 GetFreq() const;

	private:
		LARGE_INTEGER mFreq;
		LARGE_INTEGER mBase;
		TIME_PRECISION mStartTime;
		TIME_PRECISION mDeltaTime;
		TIME_PRECISION mTime;
	};
}

#endif //__Timer_header_included__